#ifndef __GAMEOBJECT_LIST__INTERFACE__
#define __GAMEOBJECT_LIST__INTERFACE__

//
// Simple list class for game objects
// Note: size must be reserved befor use.
// Note2: Should be a template class, but that is prohibited in coding guidelines.
//
class GameObject;
class GameObjectListInterface
{
public:
//	GameObjectListInterface();
//	virtual ~GameObjectListInterface();
public:
	virtual void        Reserve(int count) = 0;
	virtual void        AddObject(GameObject*) = 0;
	virtual void        RemoveObject(GameObject*) = 0;
	virtual int         FindObject(GameObject*) = 0;
	virtual GameObject* FindObject(int id) = 0;
	virtual void        Clear() = 0;

	virtual int  GetCount() const = 0;
	virtual int  GetMaxCount() const = 0;
	
	virtual GameObject* operator[](int i) = 0;
};

#endif //__GAMEOBJECT_LIST__INTERFACE__
